package main

import (
	"fmt"
)

func verifyPostorder(postorder []int) bool {
	// 递归中止条件
	if len(postorder) == 1 || len(postorder) == 0{
		return true
	}
	// 判断是否满足，后续的条件
	var site,site2 ,val int
	for site, val = range postorder {
		if val > postorder[len(postorder)-1] {
			break
		}
	}
	if !verifyPostorder(postorder[:site-1]) {
		return false
	}
	for site2, val = range postorder[site:] {
		if val <= postorder[len(postorder)-1] {
			break
		}
	}
	if site2 != len(postorder[site:])-1 {
		return false
	}
	if !verifyPostorder(postorder[site : len(postorder)-1]) {
		return false
	}
	return true
}
func main() {
	nums := []int{1, 3, 2, 6, 5}
	fmt.Println(verifyPostorder(nums))
}

// 最后一个数，一定是根节点
// 从前往后找，第一个比根打的，其后的节点，就是右子树
// 之前的树就是左子树
